<?php
/**
  * Musashi - A project manager for music groups and bands
  * Copyright (C) 2010 Daniel Torres
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *
  */

/**
 *  The main public entry point for the Musashi component. Creates an instance
 *  of the MusashiController, and executes the required task on it.
 *  
 * @package Musashi
 * @author Daniel Torres
 */
 
// Make sure we have access to this page
defined('_JEXEC') or die ('Restricted access. Sorry');

// Require base controllers. JPATH is the absolute path to the current component
// DS is the directory separator (system independent). One can also use _COMPONENT_SITE
// or _COMPONENT_ADMINISTRATOR
require_once(JPATH_COMPONENT.DS.'controller.php');

// Require a specific controller, if needed
if($controller = JRequest::getVar('controller'))
{
    $path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php';
    if( file_exists($path)){
        require_once $path;
    } else {
        $controller = '';
    }
}

// Create the controller. The naming convention is {ComponentName}{Controller}{ControllerName}
$classname  = 'MusashiAdminController'.$controller;
$controller = new $classname();

// Execute requested task
$controller->execute(JRequest::getVar('task'));

// Redirect if set by the controller
$controller->redirect();
?>

